iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 24
0
自我挑戰組

Hello Swift系列 第 24

24/30 不是小朋友也要做選擇

  • 分享至 

  • xImage
  •  

UIPickerView
提供各種項目讓使用者做選擇時常用的類別。

  1. 從元件庫加入PickerView並設定AutoLayout
  2. 將PickerView的DataSource(右鍵)拖曳至ViewController類別做連結。
  3. 將PickerView的Delegate(右鍵)拖曳至ViewController類別做連結。
  • ViewController.swift
    ViewControlle提供pickerView資料
class ViewController: UIViewController,UIPickerViewDataSource,UIPickerViewDelegate

加入第一個方法:numberOfComponents

//PickerView所顯示的類別數量
//Components:部件、構成要素
func numberOfComponents(in pickerView: UIPickerView) -> Int {
    return 2
}

加入第二個方法:numberOfRowsInComponent

//一個類別有幾列
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    //第0類有[numberArray.count]個選項
    if component == 0{
        return numberArray.count
    //第1類有[fruitArray.count]個選項
    }else{
        return fruitArray.count
    }
}

加入第三個方法:titleForRow

//每一列要顯示的內容
//pickerView呼叫titleForRow方法,回傳要顯示的文字(字串)
    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        //參數:component[0] + row[0~7]
        if component == 0{
            return numberArray[row]
        //參數:component[1] + row[0~3]
        }else{
            return fruitArray[row]
        }
    }

加入第四個方法:didSelectRow

//使用者選擇後要執行的方法
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    if component == 0{
        print("number:\(numberArray[row])")
    }else{
        print("number:\(fruitArray[row])")
    }
}

Results

http://sendvid.com/f5u78uv1


上一篇
23/30 不入虎穴焉得虎子
下一篇
25/30 switch也是語法-1
系列文
Hello Swift30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言